﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Permissions;
using System.Collections;
using System.Linq;

using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;


namespace ENLibraryClass
{

    public class ENProductos
    {

        

        //CAD de acceso a la BD
        private CADLibraryClass.ProductosCAD cadProductos;


        //DECLARACION DE ATRIBUTOS
        private int id;
        private string matricula;
        private string marca;
        private string modelo;
        private string categoria;
        private string color;
        private float precioAlquiler;
        private float precioVenta;
        public string path;
        




        //CONSTRUCTOR DEFECTO
        public ENProductos()
        {
            id = 0;
             matricula="";
             marca=null;
             modelo=null;
             categoria="";
             color = null;
             precioAlquiler=0.0F;
             precioVenta=0.0F;
             path = null;


             cadProductos = new CADLibraryClass.ProductosCAD();
        }


        //CONSTRUCTOR PARAMETROS
        public ENProductos(int pid, string pmatricula, string pmarca, string pmodelo, string pcategoria, string pcolor, float pprecioAlquiler, float pprecioVenta, string ppath)
        {
            id = pid;
            matricula = pmatricula;
            marca = pmarca;
            modelo = pmodelo;
            categoria = pcategoria;
            color = pcolor;
            precioAlquiler = pprecioAlquiler;
            precioVenta = pprecioVenta;
            path = ppath;

            cadProductos = new CADLibraryClass.ProductosCAD();
        }


        //PROPIEDADES
        public string Matricula
        {
            get { return matricula; }
            set { matricula = value; }
        }

        public string Marca
        {
            get { return marca; }
            set { marca = value; }
        }

        public string Modelo
        {
            get { return modelo; }
            set { modelo = value; }
        }

        public string Categoria
        {
            get { return categoria; }
            set { categoria = value; }
        }

        public string Color
        {
            get { return color; }
            set { color = value; }
        }

        public float PrecioAlquiler
        {
            get { return precioAlquiler; }
            set { precioVenta = value; }
        }

        public float PrecioVenta
        {
            get { return precioVenta; }
            set { precioVenta = value; }
        }

        public int ID
        {
            get { return id; }
            set { id = value; }
        }

        public string Path
        {
            get { return path; }
            set { path = value; }
        }

        //METODOS CRUD
        public bool AltaVehiculo()
        {
            try
            {
                bool nuevo = false;

                nuevo = cadProductos.AltaVehiculo(id, matricula, marca, modelo, categoria, color, precioAlquiler, precioVenta,path);

                return nuevo;
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool ModificarVehiculo()
        {
            try
            {
                bool modificado = false;

                modificado = cadProductos.ModificarVehiculo(id, matricula, marca, modelo, categoria, color, precioAlquiler, precioVenta,path);

                return modificado;
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public DataTable BuscarVehiculo()
        {
            try
            {
                return cadProductos.BuscarVehiculo();
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public DataTable BuscarVehiculoPor()
        {
            try
            {
                return cadProductos.BuscarVehiculo(id, matricula,marca,modelo,categoria,color,precioAlquiler,precioVenta);
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool BorrarVehiculo()
        {
            try
            {
                return cadProductos.BorrarVehiculo(id);
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

    }
}
